In a multiprocessor environment, a protocol may organize access to various computer resources through various locking mechanisms. For example, a computer resource may be in a locked state, while a thread is holding or owning a lock to the computer resource at a particular time. As such, the thread that owns the lock may enter a section of code protected by the lock. If a different thread attempts to obtain a lock on a computer resource already being held by the current thread, the different thread may not access data in the computer resource until the lock is released by the current thread.